/*
 * Problem: 百万富翁（Millionaire）
 * Author: Yuanshun L
 * Created: 6-Dec-2021
 * Topic: 动态规划法
 */
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;

const int maxn = 15;
double dp[2][(1<<maxn)+1];
int M,X;
double P;


void solve(){
    cin >> M >> P >> X;
    int n = (1<<M);
    double *prv = dp[0], *nxt = dp[1];
    memset(prv,0,sizeof(double)*(n+1));
    prv[n] = 1.0;
    for(int i=0;i<M;i++){
        for(int j=0;j<=n;j++){
            int jub = min(j,n-j); // 避免超额
            double t = 0.0;
            for(int k = 0; k <= jub; k++){
                t = max(t,P*prv[j+k]+(1-P)*prv[j-k]);
            }
            nxt[j] = t;
        }
        swap(nxt,prv);
    }

    int phase = (double)X * n / 1000000;
    printf("%.6lf\n",prv[phase]);

}

int main(){
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    solve();
    return 0;
}
